home *** CD-ROM | disk | FTP | other *** search
-
- function camera_setup()
- units_setup(5,false,ENET_EFFECT_PS_SETUPSMOKE_SMALL)
- end
-
- function camera_resetup()
- units_setup(5,false)
- end
-
- function camera_select()
- units_select(22,1)
- end
-
- function camera_unselect()
- units_unselect()
- end
-
- function camera_selectenemy()
- uniGetExecutor():addSimpleEffect(ENET_EFFECT_SELECTEDGEOMETRY_ENEMY)
- end
-
- function camera_damaged()
- waitDeath(uniGetExecutor():addMoveEffect(ENET_EFFECT_MOVE_CAMERA_4FIRE,400))
- end
-
- function calculate_position(flier,target,distance)
- local t_pos = target:getWorldPosition()
- local f_pos = flier:getWorldPosition()
- local fwd = D3DXVECTOR3:new(t_pos.x - f_pos.x,t_pos.y - f_pos.y,t_pos.z - f_pos.z)
- local mag = math.sqrt(fwd.x*fwd.x + fwd.y*fwd.y + fwd.z*fwd.z)
- fwd.x = fwd.x / mag
- fwd.y = fwd.y / mag
- fwd.z = fwd.z / mag
- t_pos.x = t_pos.x - distance * fwd.x
- t_pos.y = t_pos.y - distance * fwd.y
- t_pos.z = t_pos.z - distance * fwd.z
- fwd:delete()
- return t_pos
- end
-
- function camera_explode()
- pause(1.5)
-
- local camera = uniGetExecutor()
- local unit = uniGetTarget()
- local pos = unit:getWorldPosition()
- local dummy = createWorldEffect(ENET_EFFECT_DUMMY,0,0)
-
- local dummyHolder = enHolder:new(dummy,HT_DESTROYER)
-
- local npos = calculate_position( camera, unit, 200 + rand(-50,50) )
- dummy:setLocalPosition( npos.x,npos.y,npos.z )
- waitDeath( camera:addMoveEffect(ENET_EFFECT_MOVE_LINEARFLYTOOWNER,800,dummy) )
-
- while ( unit:getLife() > 0.0001 ) do
- pause()
- end
-
- timeScale = GetTimeScale()
- SetTimeScale( 0.2 + rand(0.0,0.1) )
-
- dummy:setLocalPosition( pos.x,pos.y,pos.z )
- camera:setTransformOwner(dummy)
- local time = 2
- local tr;
- if ( rand(0,2) < 1 ) then
- if ( rand(0,2) > 1 ) then
- tr = dummy:addRotationEffect(ENET_EFFECT_ROTATE_RADAR,2*MATH_PI/time)
- else
- tr = dummy:addRotationEffect(ENET_EFFECT_ROTATE_RADAR,-2*MATH_PI/time)
- end
- end
-
- local trHolder
- if ( tr ) then
- trHolder = enHolder:new(tr,HT_DESTROYER)
- end
-
- pause(time)
- camera:setTransformOwner()
-
- SetTimeScale( timeScale, 2 )
- end
-
- function camera_move()
- -- waitDeath(uniGetExecutor():addMoveEffect(ENET_EFFECT_MOVE_LINEAR_HERMITE,400))
- waitDeath(uniGetExecutor():addMoveEffect(ENET_EFFECT_MOVE_CAMERATOUNIT,400))
- end
-
- function camera_prepare()
- waitDeath(uniGetExecutor():addMoveEffect(ENET_EFFECT_MOVE_CAMERATOUNIT_2FANCY,400))
- end
-
- function camera_fire()
- local unit = uniGetExecutor()
- waitDeath(unit:addMoveEffect(ENET_EFFECT_MOVE_CAMERATOPOSITIONANDORIENTATION,400))
- pause(0.3)
- end
-
- function camera_fire2()
- local camera = uniGetExecutor()
- waitDeath(camera:addMoveEffect(ENET_EFFECT_MOVE_CAMERATOPOSITIONANDORIENTATION,400))
- end
-
- function camera_transfer()
- waitDeath(uniGetExecutor():addMoveEffect(ENET_EFFECT_MOVE_LINEAR_HERMITE,uniGetLife()))
- end
-
-
- registerCommand(ENSCRIPTSET_CAMERA,ENC_MOVE,"camera_move")
- registerCommand(ENSCRIPTSET_CAMERA,ENC_FIRE1,"camera_fire")
- registerCommand(ENSCRIPTSET_CAMERA,ENC_FIRE2,"camera_fire2")
- registerCommand(ENSCRIPTSET_CAMERA,ENC_SELECT,"camera_select")
- registerCommand(ENSCRIPTSET_CAMERA,ENC_SELECTENEMY,"camera_selectenemy")
- registerCommand(ENSCRIPTSET_CAMERA,ENC_UNSELECT,"camera_unselect")
- registerCommand(ENSCRIPTSET_CAMERA,ENC_SETUP,"camera_setup")
- registerCommand(ENSCRIPTSET_CAMERA,ENC_RESETUP,"camera_resetup")
- registerCommand(ENSCRIPTSET_CAMERA,ENC_DAMAGED,"camera_damaged")
- registerCommand(ENSCRIPTSET_CAMERA,ENC_EXPLODE,"camera_explode")
- registerCommand(ENSCRIPTSET_CAMERA,ENC_HIGHLIGHT,"camera_prepare")
- registerCommand(ENSCRIPTSET_CAMERA,ENC_TRANSFER,"camera_transfer")
-